Be sure to not emit a lone `?` in a URL
authorAlex Crichton <alex@alexcrichton.com>
Thu, 31 Jul 2014 19:18:59 +0000 (12:18 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Thu, 31 Jul 2014 19:18:59 +0000 (12:18 -0700)
src/cargo/core/source.rs

index f60c076cbd0aa420ff963d1702d06ea8251411fb..9091a0ef9578367f03fe16b25a41783ddac898ab 100644 (file)
@@ -247,15 +247,12 @@ impl SourceId {
                 let mut url = url.to_url().unwrap();
                 let mut reference = "master".to_string();
                 let pairs = url.query_pairs().unwrap_or(Vec::new());
-                url.set_query_from_pairs(pairs.iter().filter(|&&(ref k, ref v)| {
+                for &(ref k, ref v) in pairs.iter() {
                     if k.as_slice() == "ref" {
                         reference = v.clone();
-                        false
-                    } else {
-                        true
                     }
-                }).map(|&(ref a, ref b)| (a.as_slice(), b.as_slice())));
-
+                }
+                url.query = None;
                 let precise = mem::replace(&mut url.fragment, None);
                 SourceId::for_git(&url, reference.as_slice(), precise)
             },